package com.hw.one.dam2.dao;

import java.util.List;
import java.util.Map;

import com.hw.one.dam2.param.QualityGoalParam;
import com.hw.one.dam2.param.RegionSiteParam;
import com.hw.one.dam2.param.SmallAirParam;


public interface IRegionSiteDao {
	/**
	 * 通过区域编码，获取点位信息
	 * @param regionCode
	 * @return
	 * @throws Exception
	 */
	List<Map<String,Object>> findSiteInfoByRegionCode(String regionCode) throws Exception;
	
	/**
	 * 根据区域编码，获取上级区域
	 * @param regionCode
	 * @return
	 * @throws Exception
	 */
	List<Map<String,Object>> findParentRegionInfoByRegionCode(String regionCode) throws Exception;



	/**
	 * 根据区域编码，获取下级区域
	 * @param regionCode
	 * @return
	 * @throws Exception
	 */
	List<Map<String,Object>> findSonRegionInfoByRegionCode(String regionCode) throws Exception;


	/**
	 * 根据区域编码，获取下级区域
	 * @param paramMap
	 * @return
	 * @throws Exception
	 */
	List<Map<String,Object>> findSubRegionInfoByRegionCode(Map<String,Object> paramMap) throws Exception;
	
	/**
	 * 根据区域名称,模糊查询区域信息
	 * @param paramMap
	 * @return
	 * @throws Exception
	 */
	List<Map<String,Object>> findRegionInfoByRegionName(Map<String,Object> paramMap) throws Exception;

	/**
	 * 通过区域编码 和 点位类型，获取点位信息
	 * @param paraMap
	 * @return
	 * @throws Exception
	 */
	List<Map<String,Object>> findSiteInfoByRegionCodeAndSiteType(RegionSiteParam paraMap);
	
	/**
	 * 通过区域编码 和 点位类型的集合，获取点位信息
	 * @author songjundan
	 * @param paraMap
	 * @return
	 * @throws Exception
	 */
	List<Map<String,Object>> findSiteInfoBySiteTypes(Map<String, Object> map );
	
	/**
	 * 通过区域编码 和 点位类型的集合，获取点位信息
	 * @author songjundan
	 * @param paraMap
	 * @return
	 * @throws Exception
	 */
	public List<Map<String, Object>> findSiteNumSiteType(Map<String, Object> map);
	/**
	 * 通过区域编码 和 点位类型，获取点位信息
	 * @param paraMap
	 * @return
	 * @throws Exception
	 */
	List<Map<String,Object>> findSiteInfoByRegionCodeAndSiteTypeWithSNCode(RegionSiteParam paraMap);

	/**
	 * 通过点位编码列表，获取点位信息
	 * @param siteCodeList
	 * @return
	 */
	List<Map<String,Object>> findSiteInfoBySiteCode(List<String> siteCodeList);
	
	/**
	 * 通过区域编码列表，获取区域信息
	 * @param regionCodeList
	 * @return
	 */
	List<Map<String,Object>> findRegionInfoByRegionCode(List<String> regionCodeList);
	
	/**
	 * 根据排名范围，获取站点列表；全国排名；省内排名；区县排名；办事处排名
	 * @param regoinTypeMap
	 * @return
	 */
	List<Map<String,Object>> findRegionListByRegionType(Map<String,String> regoinTypeMap);

	/**
	 * 根据城市类型获得74城市和2+26城市排名
	 * @param regoinTypeMap
	 * @return
	 */
	List<Map<String, Object>> findRegionListByRankingType(Map<String, String> regoinTypeMap);

	/**
	 * 根据点位编码，获取小型空气站(257)、扬尘(256)、VOC(258)等设备信息，然后跟设备编码，获取设备数据
	 * @param paramSmallPO
	 * @return
	 */
	List<Map<String,Object>> findSmallPointInfoBySiteCodeAndPointType(SmallAirParam paramSmallPO);
	
	/**
	 * 根据工业污染源 站点编码，获取污染源排口编号及名称
	 * 
	 * @param siteCodeList
	 * @return
	 */
	List<Map<String,Object>> findIndustyOutputNameBySiteCode(List<String> siteCodeList);
	
	/**
	 * 根据区域编码，获取区域信息
	 * @param regionCode
	 * @return
	 */
	Map<String,Object> findRegionInfoById(String regionCode);

	/**
	 * 根据行政区划代码获取空气质量目标
	 * @author 李亚坤
	 * @createtime 2017年3月22日15:42:21
	 * @param qualityGoalParam
	 * @return
	 */
	List<Map<String, Object>> findAirQualityGoalByRegionCode(QualityGoalParam qualityGoalParam);

	/**
	 * 根据站点编码查询 站点六项因子的偏离数据
	 * @author 李亚坤
	 * @createtime 2017年6月13日14:16:49
	 * @param paramMap
	 * @return
	 */
	List<Map<String, Object>> findSiteMonitorSetBySnCode(Map<String, Object> paramMap);

	/**
	 * 查找站点数据更新时间
	 * @author 李亚坤
	 * @createtime 2017年6月26日13:55:46
	 * @param map
	 * @return
	 */
	Map<String, Object> findSiteMonitorUpdateDateBySnCode(Map<String, Object> map);
}
